package com.zhuhjay.eduservice.service;

import com.zhuhjay.eduservice.entity.EduCourse;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhuhjay.eduservice.entity.frontvo.CourseWebVo;
import com.zhuhjay.eduservice.entity.vo.CourseInfoVo;
import com.zhuhjay.eduservice.entity.vo.CoursePublishVo;

import java.util.List;

/**
 * <p>
 * 课程 服务类
 * </p>
 *
 * @author ZhuHJay
 * @since 2022-09-06
 */
public interface EduCourseService extends IService<EduCourse> {
    /**
     * 添加课程信息，包含课程简介
     * @param courseInfoVo vo数据
     * @return
     */
    String saveCourseInfo(CourseInfoVo courseInfoVo);

    /**
     * 根据课程ID获取课程信息
     * @param courseId
     * @return
     */
    CourseInfoVo getCourseInfo(String courseId);

    /**
     * 更新课程信息
     * @param courseInfoVo
     */
    void updateCourseInfo(CourseInfoVo courseInfoVo);

    /**
     * 获取多表信息
     * @param courseId
     * @return
     */
    CoursePublishVo getPublishCourseInfo(String courseId);

    /**
     * 根据课程ID删除所有的关联表
     * @param id
     */
    void deleteCourseById(String id);

    /**
     * 查询前8热门课
     * @return
     */
    List<EduCourse> getCourseLimitList();

    /**
     * 获取详细的课程信息
     * @param id
     * @return
     */
    CourseWebVo getFrontCourseInfo(String id);
}
